Congestion in a data center network negatively impacts network performance by causing increased delays and/or lost packets. In a network shared by multiple tenants (e.g., cloud services), where each tenant may have its own service level agreement (SLA), congestion by one tenant and an attempt to resolve congestion may impact another tenant's traffic, possibly in violation of an SLA.
Known or proposed congestion control mechanisms include in-band techniques (i.e., having congestion control built into a protocol), such as explicit congestion notification (ECN) and high bandwidth ultra-low latency (HULL), and out of band techniques, such as quantized congestion notification (QCN), EyeQ and Gatekeeper. Software implementations of congestion control are relatively slow to respond to congestion and consume large numbers of host processor compute cycles to perform congestion control. HULL, a hardware acceleration technique, does not attempt to isolate tenant traffic, requires expensive deep buffering of paced traffic in hardware, and may cause potential packet re-ordering when a paced flow switches queues.
Thus, congestion control in data center networks running high speed 40G/50G/100G servers, including those sharing resources among tenants, has problems including slow response to congestion notifications, complex processing requiring excessive consumption of processor bandwidth, costly deep buffering in packet transmission queues, disruption of flows from other tenants and even uncongested flows from the same tenant, loss of network efficiency and interference with service level agreements (SLAs).